﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Pong
{
    public partial class Form1 : Form
    {
        Graphics grp;
        Paletka paletka = new Paletka();
        Pilka pilka = new Pilka();
        PaletkaPrzeciwnik paletkaPrzeciwnik = new PaletkaPrzeciwnik();

        public Form1()
        {
            InitializeComponent();
        }

        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            grp = e.Graphics;
            paletka.rysowanePaletki(grp);
            pilka.rysowanePilki(grp);
            paletkaPrzeciwnik.rysowanePaletkiPrzeciwnika(grp);
        }

        private void timerPoruszaniePilka_Tick(object sender, EventArgs e)
        {
            pilka.poruszaniePilka();
            pilka.kolizjaPaletka(paletka.recPaletka);
            pilka.kolizjaPaletka(paletkaPrzeciwnik.recPaletkaPrzeciwnik);
            paletkaPrzeciwnik.poruszaniePaletkaPrzeciwnika(pilka.recPilka);

            panel1.Invalidate();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            timerPoruszaniePilka.Start();
        }

        private void panel1_MouseMove(object sender, MouseEventArgs e)
        {
            paletka.poruszaniePaletka(e.X);

            panel1.Invalidate();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Hide();
            Ranking okno = new Ranking();

            okno.Show();
        }
    }

    #region  podwojne buforowanie panela(usuwa migotanie przy rysowaniu)
    public class DoubleBufferPanel : Panel
    {
        public DoubleBufferPanel()
        {
            // Set the value of the double-buffering style bits to true.
            this.SetStyle(ControlStyles.DoubleBuffer |
            ControlStyles.UserPaint |
            ControlStyles.AllPaintingInWmPaint,
            true);

            this.UpdateStyles();
        }
    }
#endregion
}
